package com.example.leetcode.prcatice;

import java.util.Arrays;

/**
 * 给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。
 *
 * <p>如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖，那么请你返回 true ，否则返回 false 。
 *
 * <p>已知区间 ranges[i] = [starti, endi] ，如果整数 x 满足 starti <= x <= endi ，那么我们称整数x 被覆盖了。
 *
 * <p>来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/check-if-all-the-integers-in-a-range-are-covered
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test1893 {

    public boolean isCovered(int[][] ranges, int left, int right) {
        Arrays.sort(ranges,(x,y)->x[0]-y[0]); // 排序
        for ( int [] range: ranges) {
            int l = range[0];
            int r = range[1];
            if(l<=left && left<=r){    //判断left在那个区间尼
                left = r+1;      // 如果在就将left的数值替换成右区间加1即可
            }
        }
        return left > right;   // 最后判断left会不会大于 right即可
    }
}
